import folium
import numpy as np
from sklearn.cluster import KMeans
from folium.plugins import MousePosition
#load the map
m = folium.Map(location=[37.7749,-122.4194], zoom_start=12, tiles='Stamen Terrain')
data = {
'latitude': list(df5["latitudes"]),
'longitude': list(df5["longitude"])}
df = pd.DataFrame(data)
for index, row in df.iterrows():
folium.CircleMarker([row['latitude'], row['longitude']], radius=0.00001,
color='red', fill_color='red', fill_opacity=10).add_to(m)
#k-means
X = df5[["latitudes","longitude"]]
kmeans = KMeans(n_clusters=10, random_state=42)
kmeans.fit(X)
centroids = kmeans.cluster_centers_
# different shapes of centroids
MousePosition(position='bottomleft', separator=' | ').add_to(m)
folium.Marker(location=[centroids[0][0], centroids[0][1]],icon=folium.Icon(icon = "flag",color='blue')).add_to(m)
folium.Marker(location=[centroids[6][0], centroids[6][1]],icon=folium.Icon(icon = "flag",color='blue')).add_to(m)
folium.Marker(location=[centroids[8][0], centroids[8][1]],icon=folium.Icon(icon = "flag",color='blue')).add_to(m)
folium.Marker(location=[centroids[3][0], centroids[3][1]],icon=folium.Icon(icon = "flag",color='blue'),popup='Centroids 1').add_to(m)
folium.Marker(location=[centroids[2][0], centroids[2][1]],icon=folium.Icon(icon = "star",color='green')).add_to(m)
folium.Marker(location=[centroids[9][0], centroids[9][1]],icon=folium.Icon(icon = "star",color='green')).add_to(m)
folium.Marker(location=[centroids[1][0], centroids[1][1]],icon=folium.Icon(icon = "star",color='green')).add_to(m)
folium.Marker(location=[centroids[5][0], centroids[5][1]],icon=folium.Icon(icon = "cloud",color='gray')).add_to(m)
folium.Marker(location=[centroids[4][0], centroids[4][1]],icon=folium.Icon(icon = "cloud",color='gray')).add_to(m)
folium.Marker(location=[centroids[7][0], centroids[7][1]],icon=folium.Icon(icon = "play",color='green')).add_to(m)
# show the map
m